<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   Kafka设计解析：Kafka High Availability （上）  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://dataunion.org/16063.html",
                  host: "http://dataunion.org",
                  prePath: "http://dataunion.org",
                  scheme: "http",
                  pathBase: "http://dataunion.org/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466457619: Accept with keywords: (title(0.0):社区,数盟, topn(0.233333333333):重新分配,社区,数盟,行业资讯,数据挖掘,机制,模式,基础架构,文章,线框,默认值,数据,场景,机器,宕机,性能,分布式系统,问题,算法,磁盘,异步,顺序,方式,系统,集群,消息,版本,无法,一致性,数据结构).-->
 </head>
 <body onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    Kafka设计解析：Kafka High Availability （上）
   </h1>
  </div>
  <div class="container" id="xmain">
   ﻿﻿
   <title>
    Kafka设计解析：Kafka High Availability （上） | 数盟社区
   </title>
   <!-- All in One SEO Pack 2.2.7.6.2 by Michael Torbert of Semper Fi Web Design[32,84] -->
   <!-- /all in one seo pack -->
   <!--
<div align="center">
<a href="http://strata.oreilly.com.cn/hadoop-big-data-cn?cmp=mp-data-confreg-home-stcn16_dataunion_pc" target="_blank"><img src="http://dataunion.org/wp-content/uploads/2016/05/stratabj.jpg"/ ></a>
</div>
-->
   <header id="header-web">
    <div class="header-main">
     <hgroup class="logo">
      <h1>
       <a href="http://dataunion.org/" rel="home" title="数盟社区">
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/logo.png"/>
       </a>
      </h1>
     </hgroup>
     <!--logo-->
     <nav class="header-nav">
      <ul class="menu" id="menu-%e4%b8%bb%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-71" id="menu-item-71">
        <a href="http://dataunion.org/category/events" title="events">
         活动
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22457" id="menu-item-22457">
          <a href="http://dataunion.org/2016timeline">
           2016档期
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22459" id="menu-item-22459">
          <a href="http://dataunion.org/category/parterc">
           合作会议
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-20869" id="menu-item-20869">
        <a href="http://dataunion.org/category/tech" title="articles">
         文章
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20867" id="menu-item-20867">
          <a href="http://dataunion.org/category/tech/base" title="base">
           基础架构
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3302" id="menu-item-3302">
          <a href="http://dataunion.org/category/tech/ai" title="ai">
           人工智能
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3303" id="menu-item-3303">
          <a href="http://dataunion.org/category/tech/analysis" title="analysis">
           数据分析
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21920" id="menu-item-21920">
          <a href="http://dataunion.org/category/tech/dm">
           数据挖掘
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3314" id="menu-item-3314">
          <a href="http://dataunion.org/category/tech/viz" title="viz">
           可视化
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3305" id="menu-item-3305">
          <a href="http://dataunion.org/category/tech/devl" title="devl">
           编程语言
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20876" id="menu-item-20876">
        <a href="http://dataunion.org/category/industry">
         行业
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-16328" id="menu-item-16328">
          <a href="http://dataunion.org/category/industry/case" title="case">
           行业应用
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2112" id="menu-item-2112">
          <a href="http://dataunion.org/category/industry/demo" title="demo">
           Demo展示
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21562" id="menu-item-21562">
          <a href="http://dataunion.org/category/industry/news">
           行业资讯
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-311" id="menu-item-311">
        <a href="http://dataunion.org/category/sources" title="sources">
         资源
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20870" id="menu-item-20870">
        <a href="http://dataunion.org/category/books" title="book">
         图书
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21363" id="menu-item-21363">
        <a href="http://dataunion.org/category/training">
         课程
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-21853" id="menu-item-21853">
        <a href="http://dataunion.org/category/jobs">
         职位
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22050" id="menu-item-22050">
          <a href="http://dataunion.org/category/career">
           职业规划
          </a>
         </li>
        </ul>
       </li>
      </ul>
     </nav>
     <!--header-nav-->
    </div>
   </header>
   <!--header-web-->
   <div id="main">
    <div id="soutab">
     <form action="http://dataunion.org/" class="search" method="get">
     </form>
    </div>
    <div id="container">
     <nav id="mbx">
      当前位置：
      <a href="http://dataunion.org">
       首页
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech">
       文章
      </a>
      &gt;  正文
     </nav>
     <!--mbx-->
     <article class="content">
      <header align="centre" class="contenttitle">
       <div class="mscc">
        <h1 class="mscctitle">
         <a href="http://dataunion.org/16063.html">
          Kafka设计解析：Kafka High Availability （上）
         </a>
        </h1>
        <address class="msccaddress ">
         <em>
          3,095 次阅读 -
         </em>
         <a href="http://dataunion.org/category/tech" rel="category tag">
          文章
         </a>
        </address>
       </div>
      </header>
      <div class="content-text">
       <p>
        Kafka在0.8以前的版本中，并不提供High Availablity机制，一旦一个或多个Broker宕机，则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复，亦或磁盘故障，则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化，同时对于分布式系统来说，尤其当集群规模上升到一定程度后，一台或者多台机器宕机的可能性大大提高，对Failover要求非常高。因此，Kafka从0.8开始提供High Availability机制。本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制。
       </p>
       <h2>
        Kafka为何需要High Available
       </h2>
       <h3>
        为何需要Replication
       </h3>
       <p>
        在Kafka在0.8以前的版本中，是没有Replication的，一旦某一个Broker宕机，则其上所有的Partition数据都不可被消费，这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时Producer都不能再将数据存于这些Partition中。
       </p>
       <ul>
        <li>
         如果Producer使用同步模式则Producer会在尝试重新发送
         <code>
          message.send.max.retries
         </code>
         （默认值为3）次后抛出Exception，用户可以选择停止发送后续数据也可选择继续选择发送。而前者会造成数据的阻塞，后者会造成本应发往该Broker的数据的丢失。
        </li>
        <li>
         如果Producer使用异步模式，则Producer会尝试重新发送
         <code>
          message.send.max.retries
         </code>
         （默认值为3）次后记录该异常并继续发送后续数据，这会造成数据丢失并且用户只能通过日志发现该问题。同时，Kafka的Producer并未对异步模式提供callback接口。
        </li>
       </ul>
       <p>
        由此可见，在没有Replication的情况下，一旦某机器宕机或者某个Broker停止工作则会造成整个系统的可用性降低。随着集群规模的增加，整个集群中出现该类异常的几率大大增加，因此对于生产系统而言Replication机制的引入非常重要。
       </p>
       <div class="related_sponsors visible stacked">
       </div>
       <h3>
        为何需要Leader Election
       </h3>
       <p>
        注意：本文所述Leader Election主要指Replica之间的Leader Election。
       </p>
       <p>
        引入Replication之后，同一个Partition可能会有多个Replica，而这时需要在这些Replication之间选出一个Leader，Producer和Consumer只与这个Leader交互，其它Replica作为Follower从Leader中复制数据。
       </p>
       <p>
        因为需要保证同一个Partition的多个Replica之间的数据一致性（其中一个宕机后其它Replica必须要能继续服务并且即不能造成数据重复也不能造成数据丢失）。如果没有一个Leader，所有Replica都可同时读/写数据，那就需要保证多个Replica之间互相（N×N条通路）同步数据，数据的一致性和有序性非常难保证，大大增加了Replication实现的复杂性，同时也增加了出现异常的几率。而引入Leader后，只有Leader负责数据读写，Follower只向Leader顺序Fetch数据（N条通路），系统更加简单且高效。
       </p>
       <div id="lowerFullwidthVCR">
       </div>
       <h2>
        Kafka HA设计解析
       </h2>
       <h3>
        如何将所有Replica均匀分布到整个集群
       </h3>
       <p>
        为了更好的做负载均衡，Kafka尽量将所有的Partition均匀分配到整个集群上。一个典型的部署方式是一个Topic的Partition数量大于Broker的数量。同时为了提高Kafka的容错能力，也需要将同一个Partition的Replica尽量分散到不同的机器。实际上，如果所有的Replica都在同一个Broker上，那一旦该Broker宕机，该Partition的所有Replica都无法工作，也就达不到HA的效果。同时，如果某个Broker宕机了，需要保证它上面的负载可以被均匀的分配到其它幸存的所有Broker上。
       </p>
       <p>
        Kafka分配Replica的算法如下：
       </p>
       <ol>
        <li>
         将所有Broker（假设共n个Broker）和待分配的Partition排序
        </li>
        <li>
         将第i个Partition分配到第（i mod n）个Broker上
        </li>
        <li>
         将第i个Partition的第j个Replica分配到第（(i + j) mode n）个Broker上
        </li>
       </ol>
       <h3>
        Data Replication
       </h3>
       <p>
        Kafka的Data Replication需要解决如下问题：
       </p>
       <ul>
        <li>
         怎样Propagate消息
        </li>
        <li>
         在向Producer发送ACK前需要保证有多少个Replica已经收到该消息
        </li>
        <li>
         怎样处理某个Replica不工作的情况
        </li>
        <li>
         怎样处理Failed Replica恢复回来的情况
        </li>
       </ul>
       <h4>
        Propagate消息
       </h4>
       <p>
        Producer在发布消息到某个Partition时，先通过ZooKeeper找到该Partition的Leader，然后无论该Topic的Replication Factor为多少（也即该Partition有多少个Replica），Producer只将该消息发送到该Partition的Leader。Leader会将该消息写入其本地Log。每个Follower都从Leader pull数据。这种方式上，Follower存储的数据顺序与Leader保持一致。Follower在收到该消息并写入其Log后，向Leader发送ACK。一旦Leader收到了ISR中的所有Replica的ACK，该消息就被认为已经commit了，Leader将增加HW并且向Producer发送ACK。
       </p>
       <p>
        为了提高性能，每个Follower在接收到数据后就立马向Leader发送ACK，而非等到数据写入Log中。因此，对于已经commit的消息，Kafka只能保证它被存于多个Replica的内存中，而不能保证它们被持久化到磁盘中，也就不能完全保证异常发生后该条消息一定能被Consumer消费。但考虑到这种场景非常少见，可以认为这种方式在性能和数据持久化上做了一个比较好的平衡。在将来的版本中，Kafka会考虑提供更高的持久性。
       </p>
       <p>
        Consumer读消息也是从Leader读取，只有被commit过的消息（offset低于HW的消息）才会暴露给Consumer。
       </p>
       <p>
        Kafka Replication的数据流如下图所示：
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2015/04/04160001.png"/>
       </p>
       <h4>
        ACK前需要保证有多少个备份
       </h4>
       <p>
        和大部分分布式系统一样，Kafka处理失败需要明确定义一个Broker是否“活着”。对于Kafka而言，Kafka存活包含两个条件，一是它必须维护与ZooKeeper的session（这个通过ZooKeeper的Heartbeat机制来实现）。二是Follower必须能够及时将Leader的消息复制过来，不能“落后太多”。
       </p>
       <p>
        Leader会跟踪与其保持同步的Replica列表，该列表称为ISR（即in-sync Replica）。如果一个Follower宕机，或者落后太多，Leader将把它从ISR中移除。这里所描述的“落后太多”指Follower复制的消息落后于Leader后的条数超过预定值（该值可在$KAFKA_HOME/config/server.properties中通过
        <code>
         replica.lag.max.messages
        </code>
        配置，其默认值是4000）或者Follower超过一定时间（该值可在$KAFKA_HOME/config/server.properties中通过
        <code>
         replica.lag.time.max.ms
        </code>
        来配置，其默认值是10000）未向Leader发送fetch请求。
       </p>
       <p>
        Kafka的复制机制既不是完全的同步复制，也不是单纯的异步复制。事实上，完全同步复制要求所有能工作的Follower都复制完，这条消息才会被认为commit，这种复制方式极大的影响了吞吐率（高吞吐率是Kafka非常重要的一个特性）。而异步复制方式下，Follower异步的从Leader复制数据，数据只要被Leader写入log就被认为已经commit，这种情况下如果Follower都复制完都落后于Leader，而如果Leader突然宕机，则会丢失数据。而Kafka的这种使用ISR的方式则很好的均衡了确保数据不丢失以及吞吐率。Follower可以批量的从Leader复制数据，这样极大的提高复制性能（批量写磁盘），极大减少了Follower与Leader的差距。
       </p>
       <p>
        需要说明的是，Kafka只解决fail/recover，不处理“Byzantine”（“拜占庭”）问题。一条消息只有被ISR里的所有Follower都从Leader复制过去才会被认为已提交。这样就避免了部分数据被写进了Leader，还没来得及被任何Follower复制就宕机了，而造成数据丢失（Consumer无法消费这些数据）。而对于Producer而言，它可以选择是否等待消息commit，这可以通过
        <code>
         request.required.acks
        </code>
        来设置。这种机制确保了只要ISR有一个或以上的Follower，一条被commit的消息就不会丢失。
       </p>
       <h4>
        Leader Election算法
       </h4>
       <p>
        上文说明了Kafka是如何做Replication的，另外一个很重要的问题是当Leader宕机了，怎样在Follower中选举出新的Leader。因为Follower可能落后许多或者crash了，所以必须确保选择“最新”的Follower作为新的Leader。一个基本的原则就是，如果Leader不在了，新的Leader必须拥有原来的Leader commit过的所有消息。这就需要作一个折衷，如果Leader在标明一条消息被commit前等待更多的Follower确认，那在它宕机之后就有更多的Follower可以作为新的Leader，但这也会造成吞吐率的下降。
       </p>
       <p>
        一种非常常用的选举leader的方式是“Majority Vote”（“少数服从多数”），但Kafka并未采用这种方式。这种模式下，如果我们有2f+1个Replica（包含Leader和Follower），那在commit之前必须保证有f+1个Replica复制完消息，为了保证正确选出新的Leader，fail的Replica不能超过f个。因为在剩下的任意f+1个Replica里，至少有一个Replica包含有最新的所有消息。这种方式有个很大的优势，系统的latency只取决于最快的几个Broker，而非最慢那个。Majority Vote也有一些劣势，为了保证Leader Election的正常进行，它所能容忍的fail的follower个数比较少。如果要容忍1个follower挂掉，必须要有3个以上的Replica，如果要容忍2个Follower挂掉，必须要有5个以上的Replica。也就是说，在生产环境下为了保证较高的容错程度，必须要有大量的Replica，而大量的Replica又会在大数据量下导致性能的急剧下降。这就是这种算法更多用在
        <a href="http://zookeeper.apache.org/">
         ZooKeeper
        </a>
        这种共享集群配置的系统中而很少在需要存储大量数据的系统中使用的原因。例如HDFS的HA Feature是基于
        <a href="http://blog.cloudera.com/blog/2012/10/quorum-based-journaling-in-cdh4-1">
         majority-vote-based journal
        </a>
        ，但是它的数据存储并没有使用这种方式。
       </p>
       <p>
        实际上，Leader Election算法非常多，比如ZooKeeper的
        <a href="http://web.stanford.edu/class/cs347/reading/zab.pdf">
         Zab
        </a>
        ,
        <a href="https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf">
         Raft
        </a>
        和
        <a href="http://pmg.csail.mit.edu/papers/vr-revisited.pdf">
         Viewstamped Replication
        </a>
        。而Kafka所使用的Leader Election算法更像微软的
        <a href="http://research.microsoft.com/apps/pubs/default.aspx?id=66814">
         PacificA
        </a>
        算法。
       </p>
       <p>
        Kafka在ZooKeeper中动态维护了一个ISR（in-sync replicas），这个ISR里的所有Replica都跟上了leader，只有ISR里的成员才有被选为Leader的可能。在这种模式下，对于f+1个Replica，一个Partition能在保证不丢失已经commit的消息的前提下容忍f个Replica的失败。在大多数使用场景中，这种模式是非常有利的。事实上，为了容忍f个Replica的失败，Majority Vote和ISR在commit前需要等待的Replica数量是一样的，但是ISR需要的总的Replica的个数几乎是Majority Vote的一半。
       </p>
       <p>
        虽然Majority Vote与ISR相比有不需等待最慢的Broker这一优势，但是Kafka作者认为Kafka可以通过Producer选择是否被commit阻塞来改善这一问题，并且节省下来的Replica和磁盘使得ISR模式仍然值得。
       </p>
       <h4>
        如何处理所有Replica都不工作
       </h4>
       <p>
        上文提到，在ISR中至少有一个follower时，Kafka可以确保已经commit的数据不丢失，但如果某个Partition的所有Replica都宕机了，就无法保证数据不丢失了。这种情况下有两种可行的方案：
       </p>
       <ul>
        <li>
         等待ISR中的任一个Replica“活”过来，并且选它作为Leader
        </li>
        <li>
         选择第一个“活”过来的Replica（不一定是ISR中的）作为Leader
        </li>
       </ul>
       <p>
        这就需要在可用性和一致性当中作出一个简单的折衷。如果一定要等待ISR中的Replica“活”过来，那不可用的时间就可能会相对较长。而且如果ISR中的所有Replica都无法“活”过来了，或者数据都丢失了，这个Partition将永远不可用。选择第一个“活”过来的Replica作为Leader，而这个Replica不是ISR中的Replica，那即使它并不保证已经包含了所有已commit的消息，它也会成为Leader而作为consumer的数据源（前文有说明，所有读写都由Leader完成）。Kafka0.8.*使用了第二种方式。根据Kafka的文档，在以后的版本中，Kafka支持用户通过配置选择这两种方式中的一种，从而根据不同的使用场景选择高可用性还是强一致性。
       </p>
       <h4>
        如何选举Leader
       </h4>
       <p>
        最简单最直观的方案是，所有Follower都在ZooKeeper上设置一个Watch，一旦Leader宕机，其对应的ephemeral znode会自动删除，此时所有Follower都尝试创建该节点，而创建成功者（ZooKeeper保证只有一个能创建成功）即是新的Leader，其它Replica即为Follower。
       </p>
       <p>
        但是该方法会有3个问题：
       </p>
       <ul>
        <li>
         split-brain 这是由ZooKeeper的特性引起的，虽然ZooKeeper能保证所有Watch按顺序触发，但并不能保证同一时刻所有Replica“看”到的状态是一样的，这就可能造成不同Replica的响应不一致
        </li>
        <li>
         herd effect 如果宕机的那个Broker上的Partition比较多，会造成多个Watch被触发，造成集群内大量的调整
        </li>
        <li>
         ZooKeeper负载过重 每个Replica都要为此在ZooKeeper上注册一个Watch，当集群规模增加到几千个Partition时ZooKeeper负载会过重。
        </li>
       </ul>
       <p>
        Kafka 0.8.*的Leader Election方案解决了上述问题，它在所有broker中选出一个controller，所有Partition的Leader选举都由controller决定。controller会将Leader的改变直接通过RPC的方式（比ZooKeeper Queue的方式更高效）通知需为为此作为响应的Broker。同时controller也负责增删Topic以及Replica的重新分配。
       </p>
       <h3>
        HA相关ZooKeeper结构
       </h3>
       <p>
        首先声明本节所示ZooKeeper结构中，实线框代表路径名是固定的，而虚线框代表路径名与业务相关
       </p>
       <p>
        <strong>
         admin
        </strong>
        （该目录下znode只有在有相关操作时才会存在，操作结束时会将其删除）
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2015/04/0416001.png"/>
       </p>
       <p>
        /admin/preferred_replica_election数据结构
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9b0847618528" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          {
   "fields":[
      {
         "name":"version",
         "type":"int",
         "doc":"version id"
      },
      {
         "name":"partitions",
         "type":{
            "type":"array",
            "items":{
               "fields":[
                  {
                     "name":"topic",
                     "type":"string",
                     "doc":"topic of the partition for which preferred replica election should be triggered"
                  },
                  {
                     "name":"partition",
                     "type":"int",
                     "doc":"the partition for which preferred replica election should be triggered"
                  }
               ],
            }
            "doc":"an array of partitions for which preferred replica election should be triggered"
         }
      }
   ]
}

Example:

{
  "version": 1,
  "partitions":
     [
        {
            "topic": "topic1",
            "partition": 8         
        },
        {
            "topic": "topic2",
            "partition": 16        
        }
     ]            
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-16">
               16
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-17">
               17
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-18">
               18
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-19">
               19
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-20">
               20
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-21">
               21
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-22">
               22
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-23">
               23
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-24">
               24
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-25">
               25
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-26">
               26
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-27">
               27
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-28">
               28
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-29">
               29
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-30">
               30
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-31">
               31
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-32">
               32
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-33">
               33
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-34">
               34
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-35">
               35
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-36">
               36
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-37">
               37
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-38">
               38
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-39">
               39
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-40">
               40
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-41">
               41
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-42">
               42
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-43">
               43
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-44">
               44
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-45">
               45
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9b0847618528-46">
               46
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9b0847618528-47">
               47
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-1">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-2">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "version id"
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-7">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-8">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-9">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-10">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-11">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-12">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-13">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-14">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-15">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "topic"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-16">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "string"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-17">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "topic of the partition for which preferred replica election should be triggered"
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-18">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-19">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-20">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "partition"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-21">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-22">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "the partition for which preferred replica election should be triggered"
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-23">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-24">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-25">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-26">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "an array of partitions for which preferred replica election should be triggered"
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-27">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-28">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-29">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-30">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-31">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-32">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-33">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-34">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-35">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-36">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-37">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-38">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-39">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic1"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-40">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partition"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                8
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-41">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-42">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-43">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic2"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-44">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partition"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                16
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-45">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9b0847618528-46">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9b0847618528-47">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0062 seconds] -->
       <p>
        <code>
         /admin/reassign_partitions
        </code>
        用于将一些Partition分配到不同的broker集合上。对于每个待重新分配的Partition，Kafka会在该znode上存储其所有的Replica和相应的Broker id。该znode由管理进程创建并且一旦重新分配成功它将会被自动移除。其数据结构如下：
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9c3490694203" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          { 
"fields":[ 
{ 
"name":"version", 
"type":"int", 
"doc":"version id" 
}, 
{ 
"name":"partitions", 
"type":{ 
"type":"array", 
"items":{ 
"fields":[ 
{ 
"name":"topic", 
"type":"string", 
"doc":"topic of the partition to be reassigned" 
}, 
{ 
"name":"partition", 
"type":"int", 
"doc":"the partition to be reassigned" 
}, 
{ 
"name":"replicas", 
"type":"array", 
"items":"int", 
"doc":"a list of replica ids" 
} 
], 
} 
"doc":"an array of partitions to be reassigned to new replicas" 
} 
} 
] 
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-16">
               16
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-17">
               17
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-18">
               18
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-19">
               19
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-20">
               20
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-21">
               21
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-22">
               22
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-23">
               23
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-24">
               24
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-25">
               25
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-26">
               26
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-27">
               27
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-28">
               28
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-29">
               29
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-30">
               30
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-31">
               31
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-32">
               32
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-33">
               33
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-34">
               34
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9c3490694203-35">
               35
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9c3490694203-36">
               36
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-1">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-2">
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-3">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-4">
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-5">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-6">
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-7">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-8">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-9">
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-10">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-11">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-12">
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-13">
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-14">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-15">
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "topic"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-16">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "string"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-17">
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "topic of the partition to be reassigned"
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-18">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-19">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-20">
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "partition"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-21">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-22">
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "the partition to be reassigned"
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-23">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-24">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-25">
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "replicas"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-26">
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-27">
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-28">
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "a list of replica ids"
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-29">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-30">
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-31">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-32">
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "an array of partitions to be reassigned to new replicas"
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-33">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-34">
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9c3490694203-35">
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9c3490694203-36">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0047 seconds] -->
       <p>
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9ca239492163" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Example:
{
  "version": 1,
  "partitions":
     [
        {
            "topic": "topic3",
            "partition": 1,
            "replicas": [1, 2, 3]
        }
     ]            
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ca239492163-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ca239492163-12">
               12
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-1">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-2">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-7">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic3"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-8">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partition"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-9">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "replicas"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                3
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-10">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ca239492163-11">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-h">
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ca239492163-12">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0018 seconds] -->
       <p>
        /admin/delete_topics数据结构：
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9d1572474943" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "topics",
       "type": { "type": "array", "items": "string", "doc": "an array of topics to be deleted"}
      } ]
}

Example:
{
  "version": 1,
  "topics": ["topic4", "topic5"]
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d1572474943-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d1572474943-13">
               13
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-1">
               <span class="crayon-v">
                Schema
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-2">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topics"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "string"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "an array of topics to be deleted"
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-7">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-8">
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-9">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-10">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-11">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d1572474943-12">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topics"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-s">
                "topic4"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "topic5"
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d1572474943-13">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0031 seconds] -->
       <p>
        <strong>
         brokers
        </strong>
       </p>
       <p>
        <img src="http://dataunion.org/wp-content/uploads/2015/04/0416002.png"/>
       </p>
       <p>
        broker（即
        <code>
         /brokers/ids/[brokerId]
        </code>
        ）存储“活着”的broker信息。数据结构如下：
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9d8754750287" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "host", "type": "string", "doc": "ip address or host name of the broker"},
      {"name": "port", "type": "int", "doc": "port of the broker"},
      {"name": "jmx_port", "type": "int", "doc": "port for jmx"}
    ]
}

Example:
{
    "jmx_port":-1,
    "host":"node1",
    "version":1,
    "port":9092
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9d8754750287-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9d8754750287-16">
               16
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-1">
               <span class="crayon-v">
                Schema
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-2">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "host"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "string"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "ip address or host name of the broker"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "port"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "port of the broker"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "jmx_port"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "port for jmx"
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-7">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-8">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-9">
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-10">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-11">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-12">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "jmx_port"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-o">
                -
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-13">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "host"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-s">
                "node1"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-14">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9d8754750287-15">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "port"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                9092
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9d8754750287-16">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0040 seconds] -->
       <p>
        topic注册信息（
        <code>
         /brokers/topics/[topic]
        </code>
        ），存储该topic的所有partition的所有replica所在的broker id，第一个replica即为preferred replica，对一个给定的partition，它在同一个broker上最多只有一个replica,因此broker id可作为replica id。数据结构如下：
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9de890886265" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Schema:
{ "fields" :
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "partitions",
       "type": {"type": "map",
                "values": {"type": "array", "items": "int", "doc": "a list of replica ids"},
                "doc": "a map from partition id to replica list"},
      }
    ]
}
Example:
{
    "version":1,
    "partitions":
        {"12":[6],
        "8":[2],
        "4":[6],
        "11":[5],
        "9":[3],
        "5":[7],
        "10":[4],
        "6":[8],
        "1":[3],
        "0":[2],
        "2":[4],
        "7":[1],
        "3":[5]}
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-16">
               16
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-17">
               17
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-18">
               18
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-19">
               19
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-20">
               20
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-21">
               21
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-22">
               22
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-23">
               23
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-24">
               24
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-25">
               25
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-26">
               26
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9de890886265-27">
               27
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9de890886265-28">
               28
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9de890886265-1">
               <span class="crayon-v">
                Schema
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-2">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "map"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "values"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "a list of replica ids"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-7">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "a map from partition id to replica list"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-8">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-9">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-10">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-11">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-12">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-13">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-14">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "partitions"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-15">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "12"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                6
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-16">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "8"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-17">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "4"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                6
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-18">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "11"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                5
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-19">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "9"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                3
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-20">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "5"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                7
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-21">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "10"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                4
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-22">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "6"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                8
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-23">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "1"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                3
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-24">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "0"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-25">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "2"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                4
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-26">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "7"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9de890886265-27">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "3"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                5
               </span>
               <span class="crayon-sy">
                ]
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9de890886265-28">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0064 seconds] -->
       <p>
        partition state（
        <code>
         /brokers/topics/[topic]/partitions/[partitionId]/state
        </code>
        ） 结构如下：
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9e6246582173" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "isr",
       "type": {"type": "array",
                "items": "int",
                "doc": "an array of the id of replicas in isr"}
      },
      {"name": "leader", "type": "int", "doc": "id of the leader replica"},
      {"name": "controller_epoch", "type": "int", "doc": "epoch of the controller that last updated the leader and isr info"},
      {"name": "leader_epoch", "type": "int", "doc": "epoch of the leader"}
    ]
}

Example:
{
    "controller_epoch":29,
    "leader":2,
    "version":1,
    "leader_epoch":48,
    "isr":[2]
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-11">
               11
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-12">
               12
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-13">
               13
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-14">
               14
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-15">
               15
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-16">
               16
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-17">
               17
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-18">
               18
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-19">
               19
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-20">
               20
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9e6246582173-21">
               21
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9e6246582173-22">
               22
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-1">
               <span class="crayon-v">
                Schema
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-2">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "isr"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "array"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-6">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "items"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-7">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "an array of the id of replicas in isr"
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-8">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-9">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "leader"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "id of the leader replica"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-10">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "controller_epoch"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "epoch of the controller that last updated the leader and isr info"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-11">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "leader_epoch"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "epoch of the leader"
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-12">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-13">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-14">
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-15">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-16">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-17">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "controller_epoch"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                29
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-18">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "leader"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-19">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-20">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "leader_epoch"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                48
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9e6246582173-21">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "isr"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-cn">
                2
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9e6246582173-22">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0051 seconds] -->
       <p>
        <strong>
         controller
        </strong>
        <br/>
        <code>
         /controller -&gt; int (broker id of the controller)
        </code>
        存储当前controller的信息
       </p>
       <!-- Crayon Syntax Highlighter v_2.7.2_beta -->
       <div class="crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-pc print-yes notranslate" data-settings=" minimize scroll-mouseover" id="crayon-57685e113d9ed801399113" style=" margin-top: 12px; margin-bottom: 12px; font-size: 12px !important; line-height: 15px !important;">
        <div class="crayon-toolbar" data-settings=" mouseover overlay hide delay" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
         <span class="crayon-title">
         </span>
         <div class="crayon-tools" style="font-size: 12px !important;height: 18px !important; line-height: 18px !important;">
          <div class="crayon-button crayon-nums-button" title="切换是否显示行编号">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-wrap-button" title="切换自动换行">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-expand-button" title="点击展开代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-copy-button" title="复制代码">
           <div class="crayon-button-icon">
           </div>
          </div>
          <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
           <div class="crayon-button-icon">
           </div>
          </div>
         </div>
        </div>
        <div class="crayon-info" style="min-height: 16.8px !important; line-height: 16.8px !important;">
        </div>
        <div class="crayon-plain-wrap">
         <textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4; font-size: 12px !important; line-height: 15px !important;" wrap="soft">
          Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "brokerid", "type": "int", "doc": "broker id of the controller"}
    ]
}
Example:
{
    "version":1,
　　"brokerid":8
}
         </textarea>
        </div>
        <div class="crayon-main" style="">
         <table class="crayon-table">
          <tbody>
           <tr class="crayon-row">
            <td class="crayon-nums " data-settings="show">
             <div class="crayon-nums-content" style="font-size: 12px !important; line-height: 15px !important;">
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-1">
               1
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ed801399113-2">
               2
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-3">
               3
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ed801399113-4">
               4
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-5">
               5
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ed801399113-6">
               6
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-7">
               7
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ed801399113-8">
               8
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-9">
               9
              </div>
              <div class="crayon-num crayon-striped-num" data-line="crayon-57685e113d9ed801399113-10">
               10
              </div>
              <div class="crayon-num" data-line="crayon-57685e113d9ed801399113-11">
               11
              </div>
             </div>
            </td>
            <td class="crayon-code">
             <div class="crayon-pre" style="font-size: 12px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-1">
               <span class="crayon-v">
                Schema
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ed801399113-2">
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "fields"
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-3">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                [
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version id"
               </span>
               <span class="crayon-sy">
                }
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ed801399113-4">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                {
               </span>
               <span class="crayon-s">
                "name"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "brokerid"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "type"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "int"
               </span>
               <span class="crayon-sy">
                ,
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "doc"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "broker id of the controller"
               </span>
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-5">
               <span class="crayon-h">
               </span>
               <span class="crayon-sy">
                ]
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ed801399113-6">
               <span class="crayon-sy">
                }
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-7">
               <span class="crayon-v">
                Example
               </span>
               <span class="crayon-o">
                :
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ed801399113-8">
               <span class="crayon-sy">
                {
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-9">
               <span class="crayon-h">
               </span>
               <span class="crayon-s">
                "version"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                1
               </span>
               <span class="crayon-sy">
                ,
               </span>
              </div>
              <div class="crayon-line crayon-striped-line" id="crayon-57685e113d9ed801399113-10">
               <span class="crayon-s">
                "brokerid"
               </span>
               <span class="crayon-o">
                :
               </span>
               <span class="crayon-cn">
                8
               </span>
              </div>
              <div class="crayon-line" id="crayon-57685e113d9ed801399113-11">
               <span class="crayon-sy">
                }
               </span>
              </div>
             </div>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
       </div>
       <!-- [Format Time: 0.0024 seconds] -->
       <p>
        <code>
         /controller_epoch -&gt; int (epoch)
        </code>
        直接以整数形式存储controller epoch，而非像其它znode一样以JSON字符串形式存储。
       </p>
       <h3>
        broker failover过程简介
       </h3>
       <ol>
        <li>
         Controller在ZooKeeper注册Watch，一旦有Broker宕机（这是用宕机代表任何让系统认为其die的情景，包括但不限于机器断电，网络不可用，GC导致的Stop The World，进程crash等），其在ZooKeeper对应的znode会自动被删除，ZooKeeper会fire Controller注册的watch，Controller读取最新的幸存的Broker。
        </li>
        <li>
         Controller决定set_p，该集合包含了宕机的所有Broker上的所有Partition。
        </li>
        <li>
         对set_p中的每一个Partition3.1 从
         <code>
          /brokers/topics/[topic]/partitions/[partition]/state
         </code>
         读取该Partition当前的ISR3.2 决定该Partition的新Leader。如果当前ISR中有至少一个Replica还幸存，则选择其中一个作为新Leader，新的ISR则包含当前ISR中所有幸存的Replica。否则选择该Partition中任意一个幸存的Replica作为新的Leader以及ISR（该场景下可能会有潜在的数据丢失）。如果该Partition的所有Replica都宕机了，则将新的Leader设置为-1。
         <p>
          3.3 将新的Leader，ISR和新的
          <code>
           leader_epoch
          </code>
          及
          <code>
           controller_epoch
          </code>
          写入
          <code>
           /brokers/topics/[topic]/partitions/[partition]/state
          </code>
          。注意，该操作只有其version在3.1至3.3的过程中无变化时才会执行，否则跳转到3.1
         </p>
        </li>
        <li>
         直接通过RPC向set_p相关的Broker发送LeaderAndISRRequest命令。Controller可以在一个RPC操作中发送多个命令从而提高效率。broker failover顺序图如下所示。
         <img src="http://dataunion.org/wp-content/uploads/2015/04/0416003.png"/>
        </li>
       </ol>
       <h2>
        作者简介
       </h2>
       <p>
        <strong>
         郭俊
        </strong>
        （Jason），硕士，从事大数据平台研发工作，精通Kafka等分布式消息系统及Storm等流式处理系统。
       </p>
       <p>
        <a href="http://www.weibo.com/habren">
         新浪微博：郭俊_Jason
        </a>
        微信：habren
        <a href="http://www.jasongj.com/">
         个人博客： http://www.jasongj.com
        </a>
       </p>
       <h2>
        下篇预告
       </h2>
       <p>
        下篇文章将详细介绍Kafka HA相关的异常情况处理，例如，怎样处理Broker failover，Follower如何从Leader fetch消息，如何重新分配Replica，如何处理Controller failure等。
       </p>
       <p>
       </p>
       <p>
        文章出处：http://www.infoq.com/cn/articles/kafka-analysis-part-2
       </p>
      </div>
      <div>
       <strong>
        注：转载文章均来自于公开网络，仅供学习使用，不会用于任何商业用途，如果侵犯到原作者的权益，请您与我们联系删除或者授权事宜，联系邮箱：contact@dataunion.org。转载数盟网站文章请注明原文章作者，否则产生的任何版权纠纷与数盟无关。
       </strong>
      </div>
      <!--content_text-->
      <div class="fenxian">
       <!-- JiaThis Button BEGIN -->
       <div class="jiathis_style_32x32">
        <p class="jiathis_button_weixin">
        </p>
        <p class="jiathis_button_tsina">
        </p>
        <p class="jiathis_button_qzone">
        </p>
        <p class="jiathis_button_cqq">
        </p>
        <p class="jiathis_button_tumblr">
        </p>
        <a class="jiathis jiathis_txt jtico jtico_jiathis" href="http://www.jiathis.com/share" target="_blank">
        </a>
        <p class="jiathis_counter_style">
        </p>
       </div>
       <!-- JiaThis Button END -->
      </div>
     </article>
     <!--content-->
     <!--相关文章-->
     <div class="xianguan">
      <div class="xianguantitle">
       相关文章！
      </div>
      <ul class="pic">
       <li>
        <a href="http://dataunion.org/20348.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/08/t0123c56de49c9c3de9_副本.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/20348.html" rel="bookmark" title="Apache kafka 工作原理介绍">
         Apache kafka 工作原理介绍
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/17905.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/05/t0123c56de49c9c3de9-300x225.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/17905.html" rel="bookmark" title="Kafka设计解析（二） Kafka High Availability （上）">
         Kafka设计解析（二） Kafka High Availability （上）
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/17873.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/05/t0123c56de49c9c3de9-300x225.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/17873.html" rel="bookmark" title="Kafka设计解析（一） Kafka背景及架构介绍">
         Kafka设计解析（一） Kafka背景及架构介绍
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/16662.html">
         <img src="http://dataunion.org/wp-content/uploads/2015/05/t013d48bf948186f511-300x148.png"/>
        </a>
        <a class="link" href="http://dataunion.org/16662.html" rel="bookmark" title="Kafka文件存储机制那些事">
         Kafka文件存储机制那些事
        </a>
       </li>
      </ul>
     </div>
     <!--相关文章-->
     <div class="comment" id="comments">
      <!-- You can start editing here. -->
      <!-- If comments are open, but there are no comments. -->
      <div class="title">
       期待你一针见血的评论，Come on！
      </div>
      <div id="respond">
       <p>
        不用想啦，马上
        <a href="http://dataunion.org/wp-login.php?redirect_to=http%3A%2F%2Fdataunion.org%2F16063.html">
         "登录"
        </a>
        发表自已的想法.
       </p>
      </div>
     </div>
     <!-- .nav-single -->
    </div>
    <!--Container End-->
    <aside id="sitebar">
     <div class="sitebar_list2">
      <div class="wptag">
       <span class="tagtitle">
        热门标签+
       </span>
       <div class="tagg">
        <ul class="menu" id="menu-%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1605" id="menu-item-1605">
          <a href="http://taidizh.com/">
           泰迪智慧
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20884" id="menu-item-20884">
          <a href="http://www.transwarp.cn/">
           星环科技
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3538" id="menu-item-3538">
          <a href="http://datall.org/">
           珈和遥感
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20888" id="menu-item-20888">
          <a href="http://www.chinahadoop.cn/">
           小象学院
          </a>
         </li>
        </ul>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <div class="textwidget">
       <div align="center">
        <a href="http://study.163.com/course/courseMain.htm?courseId=991022" target="_blank">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/dv.jpg"/>
        </a>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       文章分类
      </h4>
      <div class="tagcloud">
       <a class="tag-link-44" href="http://dataunion.org/category/industry/demo" style="font-size: 10.204724409449pt;" title="4个话题">
        Demo展示
       </a>
       <a class="tag-link-31" href="http://dataunion.org/category/experts" style="font-size: 15.826771653543pt;" title="52个话题">
        专家团队
       </a>
       <a class="tag-link-870" href="http://dataunion.org/category/tech/ai" style="font-size: 19.795275590551pt;" title="273个话题">
        人工智能
       </a>
       <a class="tag-link-488" href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f" style="font-size: 8pt;" title="1个话题">
        加入数盟
       </a>
       <a class="tag-link-869" href="http://dataunion.org/category/tech/viz" style="font-size: 17.204724409449pt;" title="93个话题">
        可视化
       </a>
       <a class="tag-link-30" href="http://dataunion.org/category/partners" style="font-size: 10.645669291339pt;" title="5个话题">
        合作伙伴
       </a>
       <a class="tag-link-889" href="http://dataunion.org/category/parterc" style="font-size: 11.582677165354pt;" title="8个话题">
        合作会议
       </a>
       <a class="tag-link-104" href="http://dataunion.org/category/books" style="font-size: 12.96062992126pt;" title="15个话题">
        图书
       </a>
       <a class="tag-link-220" href="http://dataunion.org/category/tech/base" style="font-size: 19.850393700787pt;" title="281个话题">
        基础架构
       </a>
       <a class="tag-link-219" href="http://dataunion.org/category/tech/analysis" style="font-size: 19.409448818898pt;" title="232个话题">
        数据分析
       </a>
       <a class="tag-link-887" href="http://dataunion.org/category/tech/dm" style="font-size: 13.291338582677pt;" title="17个话题">
        数据挖掘
       </a>
       <a class="tag-link-34" href="http://dataunion.org/category/tech" style="font-size: 20.732283464567pt;" title="404个话题">
        文章
       </a>
       <a class="tag-link-1" href="http://dataunion.org/category/uncategorized" style="font-size: 22pt;" title="693个话题">
        未分类
       </a>
       <a class="tag-link-4" href="http://dataunion.org/category/events" style="font-size: 14.503937007874pt;" title="29个话题">
        活动
       </a>
       <a class="tag-link-890" href="http://dataunion.org/category/tech/%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0" style="font-size: 10.204724409449pt;" title="4个话题">
        深度学习
       </a>
       <a class="tag-link-221" href="http://dataunion.org/category/tech/devl" style="font-size: 18.968503937008pt;" title="193个话题">
        编程语言
       </a>
       <a class="tag-link-888" href="http://dataunion.org/category/career" style="font-size: 15.661417322835pt;" title="48个话题">
        职业规划
       </a>
       <a class="tag-link-5" href="http://dataunion.org/category/jobs" style="font-size: 14.11811023622pt;" title="25个话题">
        职位
       </a>
       <a class="tag-link-871" href="http://dataunion.org/category/industry" style="font-size: 15.716535433071pt;" title="49个话题">
        行业
       </a>
       <a class="tag-link-613" href="http://dataunion.org/category/industry/case" style="font-size: 16.984251968504pt;" title="84个话题">
        行业应用
       </a>
       <a class="tag-link-885" href="http://dataunion.org/category/industry/news" style="font-size: 17.425196850394pt;" title="102个话题">
        行业资讯
       </a>
       <a class="tag-link-10" href="http://dataunion.org/category/training" style="font-size: 14.228346456693pt;" title="26个话题">
        课程
       </a>
       <a class="tag-link-16" href="http://dataunion.org/category/sources" style="font-size: 15.661417322835pt;" title="48个话题">
        资源
       </a>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       功能
      </h4>
      <ul>
       <li>
        <a href="http://dataunion.org/wp-login.php?action=register">
         注册
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/wp-login.php">
         登录
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/feed">
         文章
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/comments/feed">
         评论
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="https://cn.wordpress.org/" title="基于WordPress，一个优美、先进的个人信息发布平台。">
         WordPress.org
        </a>
       </li>
      </ul>
     </div>
    </aside>
    <div class="clear">
    </div>
   </div>
   <!--main-->
   ﻿
   <footer id="dibu">
    <div class="about">
     <div class="right">
      <ul class="menu" id="menu-%e5%ba%95%e9%83%a8%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18024" id="menu-item-18024">
        <a href="http://dataunion.org/category/partners">
         合作伙伴
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20881" id="menu-item-20881">
        <a href="http://dataunion.org/contribute">
         文章投稿
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20872" id="menu-item-20872">
        <a href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f">
         加入数盟
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22441" id="menu-item-22441">
        <a href="http://dataunion.org/f-links">
         友情链接
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20874" id="menu-item-20874">
        <a href="http://dataunion.org/aboutus">
         关于数盟
        </a>
       </li>
      </ul>
      <p class="banquan">
       数盟社区        ，
        做最棒的数据科学社区
      </p>
     </div>
     <div class="left">
      <ul class="bottomlist">
       <li>
        <a href="http://weibo.com/DataScientistUnion  " target="_blank" 　title="">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weibo.png"/>
        </a>
       </li>
       <li>
        <a class="cd-popup-trigger" href="http://dataunion.org/16063.html#0">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weixin.png"/>
        </a>
       </li>
      </ul>
      <div class="cd-popup">
       <div class="cd-popup-container">
        <h1>
         扫描二维码,加微信公众号
        </h1>
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/2014-12-06-1515289049.png"/>
        <a class="cd-popup-close" href="http://dataunion.org/16063.html">
        </a>
       </div>
       <!-- cd-popup-container -->
      </div>
      <!-- cd-popup -->
     </div>
    </div>
    <!--about-->
    <div class="bottom">
     <a href="http://dataunion.org/">
      数盟社区
     </a>
     <a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank">
      京ICP备14026740号
     </a>
     联系我们：
     <a href="mailto:contact@dataunion.org" target="_blank">
      contact@dataunion.org
     </a>
     <div class="tongji">
     </div>
     <!--bottom-->
     <div class="scroll" id="scroll" style="display:none;">
      ︿
     </div>
    </div>
   </footer>
   <!--dibu-->
  </div>
 </body>
</html>